فرض کن رمز خونهات رو گم کردهای و نمیتونی وارد بشی. باید از یه راه دیگه (مثل پنجره) وارد خونه بشی و یه قفل جدید بزاری. توی لینوکس، Single User Mode همون پنجرهست! وقتی رمز root رو گم کردی یا سیستمت بالا نمیاد، با این روش وارد سیستم میشی و مشکل رو رفع میکنی.
حالت تککاربره (Single User Mode) یک حالت ویژه در لینوکس است که در آن:
fsck)
در منوی GRUB، روی گزینه بوت E بزنید و به خط شروع با linux بروید. در انتهای آن، کلمه ro را به rw تغییر دهید و init=/bin/bash را اضافه کنید.
سپس Ctrl+X یا F10 برای بوت کردن.
در منوی GRUB، روی گزینه بوت E بزنید و به خط شروع با linux یا linux16 بروید. در انتهای آن، rd.break و enforcing=0 را اضافه کنید.
سپس Ctrl+X یا F10 برای بوت کردن.
init=/bin/bash و در رد هت/الما از rd.break استفاده میشود.
در منوی GRUB، روی گزینه بوت E بزنید و به خط شروع با linux بروید. در انتهای آن، rd.break را اضافه کنید:
توضیح: rd.break سیستم را قبل از mount شدن ریشه (root) متوقف میکند و شما را به یک شل اولیه (initramfs) میبرد. enforcing=0 SELinux را غیرفعال میکند تا بعداً مشکلی برای لاگین نداشته باشید.
در شل initramfs که وارد شدید، سیستم فایل ریشه در /sysroot Mount شده است، اما به صورت فقط خواندنی (ro). باید آن را به صورت خواندنی-نوشتنی (rw) Mount کنید:
توضیح: chroot شما را به محیط سیستم اصلی میبرد تا بتوانید دستورات را روی آن اجرا کنید.
توضیح: رمز جدید را دو بار وارد کنید.
enforcing=0 را در مرحله اول اضافه کنید یا بعد از تغییر رمز، فایل زیر را اجرا کنید:
توضیح: با exit از محیط chroot خارج میشوید و با reboot -f سیستم را مجدداً راهاندازی میکنید.
در اوبونتو و دبیان، به جای rd.break از init=/bin/bash استفاده میشود:
بعد از بوت، مستقیماً به شل bash با دسترسی root وارد میشوید. سپس با passwd root رمز را تغییر دهید و با reboot -f سیستم را ریبوت کنید.
chroot نیست، چون مستقیماً وارد شل اصلی میشوید. اما در رد هت/الما، باید chroot /sysroot را اجرا کنید.
| توزیع | پارامتر GRUB | نیاز به chroot | توضیح |
|---|---|---|---|
| اوبونتو / دبیان | init=/bin/bash |
❌ خیر | مستقیماً وارد شل bash با دسترسی root میشوید |
| رد هت / الما / سنتاواس | rd.break enforcing=0 |
✅ بله (chroot /sysroot) |
وارد initramfs میشوید و باید chroot کنید |
init=/bin/bash و در رد هت از rd.break استفاده میشود.
init=/bin/bash → مستقیماً شل rootrd.break enforcing=0 → نیاز به chroot /sysroottouch /.autorelabel را اجرا کنید یا از enforcing=0 استفاده کنید.rd.break مخصوص خانواده رد هت است.init=/bin/bash مخصوص خانواده دبیان است.reboot -f.